package DateStructure.Class1;

public class Demo1 {
    public static void main(String[] args) {

    }

    public void main2() {
        //<>里面只能是类类型 不能是简单数据类型
        MyArray<Integer> myArray=new MyArray<Integer>();
        myArray.setArray(10,0);
        Integer a=myArray.getArray(0);
        System.out.println(a);
    }

    //泛型
    class MyArray<E>{//E为占位符，表示类当前是泛型类
        public Object[] array=new Object[10];
        //E在编译时会被擦除成Object 这种机制称为擦除机制
        public void setArray(E val,int index){
            array[index] = val;
        }
        public E getArray(int index){
            return (E)array[index];
        }
    }

    public static void test(){
        Integer a=100;
        Integer b=100;
        System.out.println(a==b);

        Integer c=200;
        Integer d=200;
        System.out.println(c==d);

        //true false
        //原因：因为Integer有一个缓存数组 这个数组可以存-128~127的数（共255个数）
        //超出这个范围就无法以值来比较 就要用equals来比较
    }


    public static void main1() {
        //装包/装箱：把基本数据类型变成包装类类型的过程
        //拆包/拆箱：把包装类类型变成基本数据类型的过程
        Integer i=Integer.valueOf(10);//显示装箱(ps.顾名思义就是给你显示出来了...)
        Integer i1=10;//自动装箱
        int b=i;//自动拆箱
        int c=i1.intValue();//显示拆箱
        double d=i1.doubleValue();//这也是拆箱
        test();
    }
}
